package com.coocaa.ops.common.core.base.mapper;

import com.coocaa.ops.common.core.base.entity.BaseHistoryTableEntity;
import com.coocaa.ops.common.core.base.model.ResourceHistoryInfoModel;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author bijiahao
 * @date : 2019/6/12.
 * @description 基础历史表数据访问层mapper接口-适用于带副本的
 *
 */
public interface IBaseHistoryMapper<T extends BaseHistoryTableEntity> extends IBaseMapper<T> {
    /**
     * 历史版本数据的数量
     *
     * @param id
     * @return
     */
    Integer getHistoryCount(Integer id);

    /**
     * 历史版本数据的信息
     *
     * @param id
     * @param limit
     * @param offset
     * @return
     */
    List<ResourceHistoryInfoModel> getHistoryList(@Param("id") Integer id, @Param("limit") Integer limit, @Param("offset") Integer offset);

    /**
     * 查询当前审核通过版本的信息
     *
     * @param resourceId
     * @return
     */
    ResourceHistoryInfoModel queryHistoryForOnline(Integer resourceId);

    ResourceHistoryInfoModel queryHistoryByIdAndVersion(@Param("resourceId") Integer resourceId, @Param("version") Integer version);

    /**
     * 查询最大版本
     *
     * @param id
     * @return
     */
    Integer queryMaxVersion(Integer id);

    /**
     * 审核通过未上线的
     *
     * @param resourceId
     * @return
     */
    List<ResourceHistoryInfoModel> listAuditNotOnline(Integer resourceId);

}
